package com.jlu.easy;

import com.alibaba.excel.EasyExcel;
import org.junit.Test;

import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class EasyTest {

  String path = "D:\\BaiduNetdiskDownload\\POI&EasyExcel\\POI\\src\\main\\resources\\";

  private List<DemoData> data(){
    List<DemoData> list = new ArrayList<DemoData>();
    for (int i = 0; i < 10; i++) {
      DemoData data = new DemoData();
      data.setString("字符串" + i);
      data.setDate(new Date());
      data.setDoubleData(0.56);
      list.add(data);
    }
    return list;
  }


  /**
   * 最简单的写
   * <p>1. 创建excel对应的实体对象 参照{@link DemoData}
   * <p>2. 直接写即可
   */
  @Test
  public void simpleWrite() {
    // 写法1
    String fileName = path + "EasyExcel.xls";
    // 这里 需要指定写用哪个class去写，然后写到第一个sheet，名字为模板 然后文件流会自动关闭
    // 如果这里想使用03 则 传入excelType参数即可
    EasyExcel.write(fileName, DemoData.class).sheet("模板").doWrite(data());

  }

  /**
   * 最简单的读
   * <p>1. 创建excel对应的实体对象 参照{@link DemoData}
   * <p>2. 由于默认一行行的读取excel，所以需要创建excel一行一行的回调监听器，参照{@link DemoDataListener}
   * <p>3. 直接读即可
   */
  @Test
  public void simpleRead() {
    // 有个很重要的点 DemoDataListener 不能被spring管理，要每次读取excel都要new,然后里面用到spring可以构造方法传进去
    // 写法1：
    String fileName = path + "EasyExcel.xls";
    // 这里 需要指定读用哪个class去读，然后读取第一个sheet 文件流会自动关闭
    EasyExcel.read(fileName, DemoData.class, new DemoDataListener()).sheet().doRead();

  }
}
